perm filename KERMAC.TEX[1,3] blob sn#554033 filedate 1980-12-03 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00008 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	% FONTS, CODES & SPECIAL CHARS.       READ MAXTEX for documentation.
C00010 00003	% ADJUSTMENTS FOR ESPANOL/ENGLISH
C00012 00004	% GLUE, BOXES, SPACING, INDENTATION, PARAGRAPHS
C00018 00005	% UNDER(OVER)LINING, BOXIT, BRACING, TH
C00025 00006	% HACKS
C00028 00007	% DEVICES, PAGE NUMBERING, PAGE FORMAT
C00044 00008	% INITIALIZATIONS
C00053 ENDMK
C⊗;
% FONTS, CODES & SPECIAL CHARS.       READ MAXTEX for documentation.
\chcode '45←5   % %  ignores rest of line
\chcode '173←1	% {  beginning of group
\chcode '176←2  % }  end of group
\chcode '44←3   % $  begins math
\chcode '26←4   % ⊗  alignment tab
\chcode '43←6   % #  parameter character
\chcode '136←7  % ↑  superscript escape
\chcode '1←8    % ↓  subscript escape


	% Enormous font:
\font L←cmr40

	% For BIG headlines; see \Tit
\font A←cmr18

	% For headlines; see \tit
\font B←cmr12

	% Dunhill font; see \dunhill
\font C←cmdunh


	% 10pt; see \rm,\it,\sy,\sl,\bf,\tt,
	%	    \ti,\teniu,\tenfib,\caps,\tensc
\font a←cmr10 \font b←cmi10 \font c←cmsy10 \font d←cms10 \font e←cmb10 \font f←cmtt
\font D←cmti10 \font E←cmu10 \font F←cmfib  \font G←cmcsc \font H←cmsc10

	% 9pt; see \rm,\it,\sy,\sl,\bf,\tt,
	%	   \ti
\font g←cmr9  \font h←cmi9  \font i←cmsy9  \font j←cms9  \font k←cmb9  \font l←cmtt9
\font I←cmti9

	% 8pt; see \rm,\it,\sy,\sl,\bf,\tt,
	%	   \ti,\caps
\font m←cmr8  \font n←cmi8  \font o←cmsy8  \font p←cms8  \font q←cmb8
\font J←cmti8 \font K←cmssc8

	% To complete 10,9,8 family fonts:
\font r←cmr7  \font s←cmi7  \font t←cmsy7
\font u←cmr6  \font v←cmi6  \font w←cmsy6
\font x←cmr5  \font y←cmi5  \font z←cmsy5


	% Math. extended font
\font @←cmathx


	% For weird characters; see \ms
\font <←ms25

	% For graphics; see \grfx
\font >←grfx35


	% Stanford Logo; see \stanlogo
\font ;←sta200



	% Font family definitions:
\def\tenpoint{\def\rm{\:a}
	\def\it{\:b}
	\def\sy{\:c}
	\def\sl{\:d}
	\def\bf{\:e}
	\def\tt{\:f}
	\def\ti{\:D}
	\def\caps{\:G}
	\mathrm arx % 10,7,5
	\mathit bsy
	\mathsy ctz
	\usertenpoint}
\def\ninepoint{\def\rm{\:g}
	\def\it{\:h}
	\def\sy{\:i}
	\def\sl{\:j}
	\def\bf{\:k}
	\def\tt{\:l}
	\def\ti{\:I}
	\mathrm gux % 9,6,5
	\mathit hvy
	\mathsy iwz
	\userninepoint}
\def\eightpoint{\def\rm{\:m}
	\def\it{\:n}
	\def\sy{\:o}
	\def\sl{\:p}
	\def\bf{\:q}
	\def\ti{\:J}
	\def\caps{\:K}
	\mathrm mux % 8,6,5
	\mathit nvy
	\mathsy owz
	\usereightpoint}

	% Math extended font:
\mathex @

	% Good for text:
\def\teniu{\:E}
\def\tenfib{\:F}
\def\tensc{\:H}

	% Special fonts:
\def\dunhill{\:C}
\def\stanlogo{{\:;S}}  %(font contains only one char.)
\def\ms{\:<}
\def\gfx{\:>}


	% Definitions of odd characters:
\def\biglp{\mathopen{\vcenter{\hbox{\:@\char'0}}}}
\def\bigrp{\mathclose{\vcenter{\hbox{\:@\char'1}}}}
\def\#{{\sy\char'161}}
\def\${{\sy\char'177}}
\def\%{{\char'45}}
\def\\{{\sy\char4}}



	% Font initializations (see \eight,nine,tenpoint):
\def\usertenpoint{\baselineskip 12pt
		\dispskip 12pt plus 3pt minus 9pt
		\dispaskip 6pt plus 3pt
		\dispbskip 7pt plus 3pt minus 4pt
		\rm}
\def\userninepoint{\baselineskip 11pt
		\dispskip 11pt plus 3pt minus 8pt
		\dispaskip 6pt plus 3pt
		\dispbskip 6pt plus 3pt minus 3pt
		\rm}
\def\usereightpoint{\baselineskip 10pt
		\dispskip 9pt plus 3pt minus 7pt
		\dispaskip 4pt plus 2pt 
		\dispbskip 5pt plus 2pt minus 1pt
		\rm}
% ADJUSTMENTS FOR ESPANOL/ENGLISH

	% The following two cancel each other:
\def\english{
	\def\Chapter{Chapter}
	\def\Theorem{Theorem}
	\def\Lemma{Lemma}
	\def\Corollary{Corollary}
	\def\Proposition{Proposition}
	\def\Proof{Proof}
	\def\Remark{Remark}
	\def\Contents{Contents}
	\def\Plates{Plates}
	\def\Notes{Notes}
	\def\Page{Page}
	\def\Figure{Figure}
	\def\Table{Table}
	\hyph 50
	\chcode '32←12	% ~
	\chcode '42←12	% "
	\def\"{\accent'23}
	\def\~{\accent'24}}
\def\espanol{\input espmac.tex[1,3] }
% GLUE, BOXES, SPACING, INDENTATION, PARAGRAPHS

	% Boxes
\def\hjust{\hbox} 
\def\vjust{\vbox} 
\def\null{\hbox{}}
	% Superpose (see manual)
\def\spose#1{\hbox to 0pt{#1\hskip 0pt minus 10000000pt}}

	% Globs of glue (for justification)
\def\lft#1{#1\hfill}
\def\ctr#1{\hfill #1\hfill}
\def\rt#1{\hfill #1}
\def\top#1{#1\vfill}
\def\mid#1{\vfill #1\vfill}
\def\btm#1{\vfill #1}


	% Justification; note these set up an hbox:
\def\ljustline#1{\hbox to size{#1\hss}}
\def\ctrline#1{\hbox to size{\hss #1\hss}}
\def\rjustline#1{\hbox to size{\hss #1}}


	% Alignment
\def\lftcol#1{\vbox{\halign{\lft{##}\cr #1\cr}}}
\def\ctrcol#1{\ctrline{\vbox{\halign{\ctr{##}\cr #1\cr}}}}
\def\rtcol#1{\rjustline{\vbox{\halign{\rt{##}\cr #1\cr}}}}
	% Same, but note #1 is set in math mode
\def\lpile#1{\vcenter{\halign{\lft{$## $}\cr #1}}}
\def\cpile#1{\vcenter{\halign{\ctr{$## $}\cr #1}}}
\def\rpile#1{\vcenter{\halign{\rt{$## $}\cr #1}}}
\def\halskip#1{\noalign{\vskip #1}}


	% Spacing (see manual p.47)
\def\hquad{\hskip.5em{}}	% half quad
\def\qquad{\quad\quad}		% double quad
\def\xskip{\hskip 7pt plus 3pt minus 4pt}
\def\xxskip{\hskip 14pt plus 6pt minus 8pt}
\def\yskip{\par\penalty-50\vskip 3pt plus 3pt minus 2pt}
\def\yyskip{\par\penalty-100\vskip 6pt plus 6pt minus 4pt}



	% Display paragraph; two levels:
\def\displaypar#1{{\def\noindent{}
		   \null\vskip \dispparskip
		   \save9\hbox to size{ }
		   \ctrline{\hbox par .8wd9{#1}}}
		  \vskip \dispparskip}
\def\displayypar#1{{\def\noindent{}
		   \null\vskip \dispparskip
		   \save9\hbox to size{ }
		   \ctrline{\hbox par .6wd9{#1}}}
		  \vskip \dispparskip}
	% Use this to remove glue after a display:
\def\parunskip{\vskip -\dispparskip}
	% Skip in \displaypar; cf \parskip
\def\dispparskip{.075vu}


	% Indent 1/4 inch:
\def\indentqin{\indentparbysize{.25vu}}
	% Indent 1/2 inch:
\def\indenthin{\indentparbysize{.5vu}}
	% Indent one inch:
\def\indentin{\indentparbysize{1vu}}
	% Take a guess:
\def\indentparbysize#1{\hangindent#1 after 0\hmode\hskip\indentcrownskip}
\def\indentcrownskip{0pt}


	% Enumerate with hanging indentation: \enumerate1 <first par>\par
	%  \enumrind <second par keeping previous indentation>\par
	%  \enumrnext <subsequent par, advance number automatically>\par
\def\enumerate#1{\gdef\enumrfmt{\enumrnfmt}\setcount7 #1\enumrnext}
	% Similar, to previous one, but use letters instead of numbers; e.g.,
	%   \enumelett{H} numbers: H, I, J, K, ... (it is not "une omelette")
\def\enumelett#1{\gdef\enumrfmt{\enumrlfmt}\setcount7 #1\enumrnext}
	% Next two work for either letter or numbers:
\def\enumrnext{\xdef\junkie{\enumrfmt}
		\save8\hbox{\junkie}
		\advnce7
		\noindent\hangindent 1wd8
		\hmode\junkie\hskip 0pt}
\def\enumrind{\noindent\hangindent 1wd8 after0{}}
	% Format used for hanging numbers or letters:
\def\enumrnfmt{{\bf\count7.\quad}}
\def\enumrlfmt{{\bf\char\count7.\quad}}


	% Itemize with hanging mark: \itemize <first par>\par \itemzind <to keep
	%   indentation>\par \itemize <second marked par>\par
\def\itemize{\xdef\junkie{\itemzfmt}
	     \save8\hbox{\junkie}
	     \noindent\hangindent 1wd8
	     \hmode\junkie\hskip 0pt}
\def\itemzind{\noindent␈␈g;&+;Q↓∂;⊃aβ∞3S↔Iπ[{x4PI∃α≠␈∪7πQπ+O↔⊃ε3?IβF;∨'v9β7π⊗[M↓#∨+KK↔w#3eβ
β3π≡YβSKN;∨3*Ih4*f#↔~sO#↔7k6kSoncRαs∂FI≥E;βzs#∂+π∪xhP4(4PI∃αSzβCWQε	β':β∂πCO#π1βf+SS↔∩β↔∨Ns';≥ε	βCπ⊗∨KπεAm↓
↓uβ'v#↔;Qε3?I↓C⊃β?Iβ→$4(J)↓↓βfK;↔Mb↓
I↓jβ3↔S&+I1↓≠→↓uβεKπ∨⊗C 4Uc∪↔~f≠πC'&3Cπ∩→E
I≠≠nsO∂3∃bsF∪?cncR1↓
↔p4(&g≠π[∃Mc#?BβCπIπ≠'k↔]cKπ∨>+⊃↓Eβ↓AAAh($$Mc'→I≠onoπ+K¬αfc';↔↔∪↔π-ε∪πOW⊗{x4PH$%αf+3O↔←[7πM¬c3';.∪K↔πZβπO/∪'Sπ~αs3'v+K↔∞Yβπ∂∂syβxhP&s[⊗{cnsF∪?cncR1↓
↔p4($Mc[O/O↓↓5GG!d4(HJs#␈AβCπ∩βO'k/Zs#πv;';∪.sQ↓Es≠←⊃aε3?I↓≠oy
∨sx4(Mc[O/O↓αs∪O≠CCπ↔≠/'Cph(1∃α,r∩⊗IDzZ⊗ILb&:&t91α
⎇B&Q1∧∩Jε∞Lr≥1α$@4(4PI∃αWv#↔K3Ns∃β'rβ#?KOS?;S∞aβ7?&)h4*f#↔~s.s∪↔K&+cQ
∂Y∩sWv#↔K3Ns↔nsF∪?cm≠{y∪ph(4(J)α?[/∪3';*β'9βF{K'k}sSπ1εk?∪∃Ph*s∪.2s?[/∪S↔c"→Gm∩f{[↔KfK;↔nfC?cZ→G{y'p4(4Ph(%∃¬≠↔Qβ↔+3↔MεK?Wv!β?B↓#7πw+π1β/A9↓I
qQ%hhRs∪↔5c?cO!
Gng3?c]c#KWf*s#␈Cns[↔+3⊗sG≠/'A∨βP4(Mc[?GZs[O↑KAOC"↓
Fs7≠/'A∨βSzsG≠/'A∨βRs[↔+3↔zfCKW3/sx4(hP4(%*αO↔∃εkπ;W∞aβA9↓Mβ≠␈⊃βS#/≠∃h4Uc∪↔~f#;K∞≠↔m∩f≠#πI;9]I∩f∪Kπ∂/A∩s∂FI≥];(4(&f≠#πI;9]Q∩f∪Kπ∂/A∩s∂FI≥];→∪x4Uc∪↔~g+CK∞≠↔m∩f≠#πI;9]Q∩f∪Kπ∂/A∩s∂FI≥];_4(&f≠#πI;9]I∩f∪Kπ∂/A∩s∂FI≥];)∪x4Uc∪↔~f∪Kπ∂/Cns3.∪↔K≥c#KWf)β#↔N;#Q↓
qWCQ¬c#≠'fcx4(hP4(%*αS=β'KC∃β&C';∨~β3'/*↓OK⊃R↓NsSG[K∪xhRs∪↔5cS!
∂Y∩{nfC?c]c↔'∨G#C?'w!↓
Gwq∪x4Pα2α % HACKS

	% Guess what:
\def\endpage{\par\vfill\eject}
\def\bye{\endpage\end}
\def\hmode{\ \unskip}		% Enter horizontal mode
\def\¬{}			% Kill spaces (dummy c. s.):


	% Set internal parameters (see manual):
\def\trace{\chpar0←}
\def\jpar{\chpar1←}
\def\hyph{\chpar2←}
\def\ragged{\chpar8←}
\def\trmacro{\trace'355}
\def\trglue{\trace'77700147}
\def\trnorm{\trace'345}


	% See errata.txt:
\def\ifzero#1#2\else#3{\ifpos#1{#3}\else{\neg#1
    \ifpos#1{\neg#1 #3}\else{\neg#1 #2}}}
\def\neg#1{\setcount#1-\count#1}
	% Check for null token: \ifnull<token>\then{true clause}\else{false clause}
\def\ifnull#1\then#2\else#3{\def\jnk{#1@}\if@\jnk{#2}\else{#3}}
	% Advance +1 if \count#1 nonnegative; else by -1
\def\advnce#1{\ifpos#1{\advcount#1}\else{\advcount#1 by -1}}


	% To handle pseudo-counters (so as to leave some \count'ers to the luser):
\def\setq#1#2{\xdef#1{#2}}
\def\addq#1#2{\setcount9 #2\advcount9 by #1\setq{#2}{\count9}}
\def\inivar#1#2{\setq{#1}{#2}\addq{-1}{#1}}



	% Just to make sure
\let\hhsize=\hsize
\def\hsize{\Nooo! Use \sethsize. READ MAXTEX, please}


	% This makes formulas like "$x:=x+1$" and "$f:X\to Y$" work
\chcode'272←'3072

\trnorm
% DEVICES, PAGE NUMBERING, PAGE FORMAT

	% Other devices will be added soon:
\def\xgp{\gdef\rfactor{.7861941}\varunit \rfactor in}



	% Do not set \hsize directly; use:
\def\sethsize#1{\columnsperpage{1}{#1}{0pt}{#1}}

	% No. of columns = n = #1 (>0),  #2 = width of column, #3 = glue between
	%   columns,  #4 ≥ n*(#2) + (n-1)*(#3).
\def\columnsperpage#1#2#3#4{\hhsize #2
	\setq\hpagesize{#4}
	\setq\colsperpg{#1}
	\setq\intercolglue{#3}
	\setcount5 \colsperpg}



	% Numbering; starts at page #1
\def\romannumbering#1{\setcount0 -#1}
\def\arabicnumbering#1{\setcount0 #1}

	% Intended use of generated pages:
\def\oneside{\gdef\ddvnum{F}}
\def\bothsides{\gdef\ddvnum{T}}

	% Page type (useless for KERMAC alone; used by PAPMAC,LETMAC)
\def\titlepage{\gdef\tpage{T}}	 % page with no heading
\def\normalpage{\gdef\tpage{F}}	 % heading typeset



	% No-heading style; numbers at bottom (looks like BASIC)
\def\noheading{\endpage
	\vsize 8.375vu		%\epagesize-\btmnrspace
	\gdef\thepage{\box5\cbotnum}
	\let \titpage=\thepage
	\let \titlemark=\titlemarknh}

	% No-heading style; no numbers, full dimensions
\def\fullpages{\endpage
	\vsize \epagesize
	\gdef\thepage{\box5}
	\let \titpage=\thepage
	\let \titlemark=\titlemarknh}



	% Page design (READ MAXTEX; see also manual)
\def\hshft{.125vu}	% Horizontal shift
\def\epagesize{8.75vu}	% vsize of vbox containing \thepage (or \titpage)
\def\btmnrspace{.375vu}	% strip left for bottom numbers
\maxdepth 0pt
\topbaseline 0pt





% THE following are for internal handling of pages; use at own risk:

	% Font for bottom numbers (default in all styles)
\def\botfnt{\teniu}
\def\cbotnum{\vskip 0pt\vbox to \btmnrspace{\btm
			   {\hbox to \hpagesize{\ctr{\botfnt\dcount0}}} }}
\def\dcount0{\ifpos0{--\hquad\count0\hquad--}\else{\count0}}

	% Mark routine:
\def\titlemarknh#1#2{}	% For compatiblity with PAPMAC

	% Do #1 if \bothsides and even page; do #2 otherwise:
\def\ddvnmsel#1#2{\if T\ddvnum{\ifeven0{#1}\else{#2}}\else{#2}}

	% Box the page and shift it:
\def\pastuppages{\setcount9\colsperpg
		\advcount9 by -\count5
		\if zero9{\save5\page}\else{\save5\hbox{\unbox5
						\hskip\intercolglue\page}}
		\advcount5 by -1}
\def\thevbox#1{\vbox to \epagesize{#1}}
\def\shftthepage#1{
	\ddvnmsel{\moveleft\hshft\thevbox{#1}}{\moveright\hshft\thevbox{#1}} }

	% Output routine:
\output{\pastuppages
	\ifzero5{\save5\hbox{\hskip-\intercolglue\unbox5}
		 \baselineskip 0pt\lineskip0pt
		 \if T\tpage{\shftthepage{\titpage}\normalpage}
		       \else{\shftthepage{\thepage}}
		 \advnce0
		 \setcount5\colsperpg}
	\else{}}
% INITIALIZATIONS

\xgp					% device desired (READ MAXTEX)

	% Page layout:
\sethsize{6.25vu}			% See also \columnsperpage
\arabicnumbering{1} 			% see also \romannumbering{#}
\oneside				% see also \bothsides
\normalpage				% see also \titlepage
\noheading				% see also \fullpages and PAPMAC (five
					%   other styles)

	% page parameters (recall vu = device inches)
\topskip 5pt plus 1pt minus 1pt
\botskip 5pt plus 1pt minus 1pt
\parindent 40pt
\parskip .075vu plus 1pt
\lineskip 1pt

	% Miscellaneous:
\english			% see also \espanol
\tenpoint			% start with these fonts (cf \usertenpoint)



% FOR internal use:
\setcount8 0			% no chapter declared
\def\consnum#1{#1}		% compatibility with PAPMAC